define(
	["baseAsset"],
	function(baseAsset) {
		return {
			create : function(path) {
			
				function processSource(txt, textStatus, jqXHR) {
					asset.data		= txt;
					asset.loadState = baseAsset.loadState.LOADED;
					jqXHR.callback(asset, jqXHR.params);
				}
			
				var asset = baseAsset.create(path);
				
				asset.data = null;
				
				asset.load = function(callback, params) {
					this.loadState 	= baseAsset.loadState.LOADING;
					var jqxhr 		= $.getJSON(this.getPath(), processSource);
					jqxhr.asset 	= this;
					jqxhr.callback 	= callback;
					jqxhr.params 	= params;
				};
				
				asset.unload = function() {
					this.loadState 	= baseAsset.loadState.NOT_LOADED;
					this.data		= null;
				};
				
				return asset;
			}
		};
	}
);